package com.kongjs.application.model.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/*
 * 快递单表
 * */
@Getter
@Setter
@ToString
@TableName("expresses")
@Entity
public class Expresses {
    @Id
    @TableId
    private Long id;
    /*
     * 单号
     * 不同快递规则不同
     * demo默认uuid
     * */
    private String expressCode;
    /*
     * 状态流转：pending_pickup → picked_up → in_transit → out_for_delivery → delivered
     * */
    private String expressStatus;
    /*
     * 寄件信息
     * */
    private Long senderId;
    private String senderName;
    private String senderPhone;
    private String senderAddress;
    private LocalDateTime senderTime;
    /*
     * 收件信息
     * */
    private String receiverName;
    private String receiverPhone;
    private String receiverAddress;
    private LocalDateTime receiverTime;
    /*
     * 物品信息
     * 托寄物  数量 件数 计费类型 计费重量 实际重量 产品类型 付费方式
     * */
    private String consignment;
    private Integer quantity;
    private Integer pieces;
    private String billingType;
    private String billingWeight;
    private String actualWeight;
    private String productType;
    private String paymentMethod;
    /*
     * 运费
     * */
    private BigDecimal shippingCost;
    /*
     * 取件快递员ID
     * */
    private Long pickupCourierId;
    /*
     * 派送快递员ID
     * */
    private Long deliveryCourierId;
    /*
     * 取件时间
     * */
    private LocalDateTime pickupTime;
    /*
     * 发货时间
     * */
    private LocalDateTime deliveryTime;
    /*
     * 完成时间
     * */
    private LocalDateTime completeTime;
    /*
     * 签收照片路径
     * */
    private String signaturePhotoPath;
    /*
     * 创建时间
     * */
    private LocalDateTime createTime;
    /*
     * 备注
     * */
    private String remark;
}
